
import $ from 'jquery'
import cookie from '@/server/cookie.js'

export default {
  // 登录
  postLoginUrl: '/user/login.do',
  // 获取问题列表
  getQuestionListUrl: '/user/questionList.do?',
  // 注册
  postRegisterUrl: '/user/register.do',
  // 忘记密码（获取问题）
  getForgetPasswordGetQuestionUrl: '/user/forgetPasswordGetQuestion.do?',
  // 校验问题答案
  getForgetPasswordCheckAnswerUrl: '/user/forgetPasswordCheckAnswer.do',
  // 更改密码
  getForgetPasswordChangePasswordUrl: '/user/forgetPasswordChangePassword.do',
  // 获取所有项目（公开的和限制的和自己私有的）
  getProductListUrl: '/product/productList.do?',
  // 获取用户信息
  getUserInfoUrl: '/user/getUserInfo.do',
  // 检查用户名是否存在
  getCheckUserNameExistUrl: '/user/checkUserNameExist.do?',
  // 检查电话号码是否存在
  getCheckPhoneExistUrl: '/user/checkPhoneExist.do?',
  // 检查邮件地址是否存在
  getCheckEmailExistUrl: '/user/checkEmailExist.do?',
  // 更新用户信息
  postUpdateUserInfoUrl: '/user/updateUserInfo.do',
  // 修改密码
  postChangePasswordUrl: 'user/changePassword.do',
  // 获取所有用户
  getUserListUrl: 'user/userList.do?',
  // 获取项目详情
  getProductDetail: 'product/detail.do?',
  // 检查项目名是否存在
  postProductNameCheckUrl: 'product/nameCheck.do',
  // 更新项目详细信息
  postProductUpdateUrl: '/product/update.do',
  // 新增项目
  postProductNewUrl: '/product/new.do',
  // 获取文件列表
  getFileListUrl: '/file/fileList.do?',
  // 获取文件履历列表
  getFileHistoryListUrl: '/file/fileHistoryList.do?',
  // 文件上传
  postFileUploadUrl: '/file/upload.do',
  // 文件checkout
  postFileCheckoutUrl: '/file/checkout.do',
  // 文件checkin
  postFileCheckInUrl: '/file/checkIn.do',
  // 文件锁定
  postFileLockUrl: '/file/lock.do',
  // 获取文件详细信息
  getFileDetailUrl: '/file/detail.do?',

  // 课程描述列表
  postCourseDescriptionListUrl: '/course/descriptionList.do',
  // 获取课程描述详情
  getCourseDescriptionByIdUrl: '/course/getCourseDescriptionById.do?',
  // 课程描述新增
  postCourseDescriptionAddUrl: '/course/descriptionAdd.do',
  // 课程描述新增
  postCourseDescriptionUpdateUrl: '/course/descriptionUpdate.do',
  // 课程描述删除
  postCourseDescriptionDeleteUrl: '/course/descriptionDelete.do',

  
  // get
  get: function(url, header, params, async, special, Vue, callback) {
    $.ajax({
      url: url + params,
      // 默认值: true。默认设置下，所有请求均为异步请求。如果需要发送同步请求，请将此选项设置为 false。
      async: async,
      processData: true,
      type: 'get',
      timeout: 15000,
      beforeSend: function(request) {
        if (header) {
          header.forEach(function(element, index) {
            request.setRequestHeader(element[0], element[1]);
          });
        }
      },
      success: function (data, status) {
        if (special) {
          collback(data)
        } else {
          if (data.code == 0) {
            callback(data.data)
          } else if (data.code == 10) {
            Vue.$toastr('warning', '请登录', 'warning')
            Vue.$router.push({ name: 'login' })
            cookie.delCookie("id")
            cookie.delCookie("name")
            cookie.delCookie("role")
          } else {
            Vue.$toastr('warning', data.msg, 'warning')
          }
        }
      },
      error: function (XHR, status, error) {
        Vue.$toastr('error', error, 'error')
      }
    })
  },
  // post
  post: function(url, header, params, async, special, Vue, callback, errorCallback) {
    // 默认值: true。默认设置下，所有请求均为异步请求。如果需要发送同步请求，请将此选项设置为 false。
    $.ajax({
      url: url,
      async: async,
      processData: true,
      type: 'POST',
      contentType: 'application/x-www-form-urlencoded',
      data: params,
      timeout: 15000,
      dataType: 'json',
      beforeSend: function(request) {
        if (header) {
          header.forEach(function(element, index) {
            request.setRequestHeader(element[0], element[1]);
          });
        }
      },
      success: function (data, status) {
        if (special) {
        callback(data)
        } else {
          if (data.code == 0) {
            callback(data.data)
          } else if (data.code == 10) {
            Vue.$toastr('warning', '请登录', 'warning')
            Vue.$router.push({ name: 'login' })
          } else {
            Vue.$toastr('warning', data.msg, 'warning');
            if (errorCallback) {
              errorCallback();
            }
          }
        }
      },
      error: function (XHR, status, error) {
        console.log('请求出错：', error)
        if (errorCallback) {
          errorCallback();
        }
      }
    })
  },
}